<?php
/**
* 名称：登录页面控制器。
* 描述：封装“用户登录概念”的程序逻辑，统一进行相关程序的操作。
*/
final class Controller_Login extends Controller{
    /**
    * 名称：入口函数。
    * 描述：访问时验证用户cookie信息，确认身份信息后继续确认身份类型，并转向相应系统。
    * @return void
    */
    protected function Acquiescent(){
        if(TRUE===Model_Account::IsLogin()){
            header('location:./?application=admin&controller=server');
        }
        else{
            Template::Assign('AlertSwitch','none');
            Template::Assign('AlertMessage','');
            Template::Display('login.html');
        }
    }

    /**
    * 描述：根据用户提交的用户信息的结果返回信息,供AJAX脚本调用。
    * @return void
    */
    protected function Logging(){
        #获取表单信息。
        list($result,$username,$password,$system,$captcha,$isRemember)=array(NULL,NULL,NULL,NULL,NULL,NULL);
        if(isset($_POST['username'])){
            $username=trim($_POST['username']);
        }
        if(isset($_POST['password'])){
            $password=Model_Account::Hash($_POST['password']);
        }
        if(isset($_POST['system'])){
            $system=$_POST['system'];
        }
        if(isset($_POST['captcha'])){
            $captcha=trim($_POST['captcha']);
        }
        if(isset($_POST['remember'])){
            $isRemember=$_POST['remember'];
        }
        #验证码验证。
        if($captcha!==Captcha::GetSessionValue()){
            Template::Assign('AlertMessage','验证码错误');
        }
        else{
            #身份验证。
            if(Model_Account::IsRightUser($username,$password)){
                if(Model_Account::Login($username,$password,$system,$isRemember)){
                    Captcha::DeleteSession(); //释放验证码session。
                    header('location:?application=admin&controller=server');
                    return;
                }
                else{
                    Template::Assign('AlertMessage','程序错误，登录失败。');
                }
            }
            else{
                Template::Assign('AlertMessage','您输入的帐号或密码不正确，请重新输入。');
            }
        }
        Template::Assign('AlertSwitch','block');
        Template::Display('login.html');
    }

    /**
    * 描述：用户登出注销。
    * @return void
    */
    protected function Logout(){
        Template::Assign('AlertSwitch','none');
        Template::Assign('AlertMessage','');
        Model_Account::Logout();
        Template::Display('login.html');
    }

    /**
    * 描述：输出验证码。
    */
    protected function Captcha(){
        $captcha=new Captcha2();
        $captcha->Doimg();
        $captcha->setSession();
    }
}
?>